package com.hspedu.sort;

import java.util.Arrays;

/**
 * @author Charlie
 * @version 1.0
 * @date 28/5/2025 下午12:21
 */
public class InsertSort {
    public static void main(String[] args) {
        //{101,34,119,1}
        int[] arr = {1, 2, 3, 7, 0, 999};
        insertSort(arr);
    }

 /*   public static void insertSort(int[] arr) {
        for (int i = 1; i < arr.length; i++) {


            int insertValue = arr[i];
            int insertIndex = i - 1;

            while (insertIndex >= 0 && insertValue < arr[insertIndex]) {
                arr[insertIndex + 1] = arr[insertIndex];
                insertIndex--;
            }

            arr[insertIndex + 1] = insertValue;

            System.out.println(Arrays.toString(arr));
        }
    }*/


    //定义待插入的数
      /*  int insertValue = arr[1];
        //定义代插入的索引
        int insertIndex = 1 - 1; //arr 1  前面一个数字的下标
        //给insertVal找到插入的位置
        while (insertIndex >= 0 && insertValue < arr[insertIndex]) {
            arr[insertIndex + 1] = arr[insertIndex];
            insertIndex--;
        }
        // 退出循环时候，插入的位置找到。这个位置在insertIndex+1
        arr[insertIndex + 1] = insertValue;
        System.out.println("===第1轮===");
        System.out.println(Arrays.toString(arr));


        //第二轮
        insertValue = arr[2];
        //定义代插入的索引
        insertIndex = 2 - 1; //arr 1  前面一个数字的下标
        //给insertVal找到插入的位置
        while (insertIndex >= 0 && insertValue < arr[insertIndex]) {
            arr[insertIndex + 1] = arr[insertIndex];
            insertIndex--;
        }
        // 退出循环时候，插入的位置找到。这个位置在insertIndex+1
        arr[insertIndex + 1] = insertValue;
        System.out.println("===第2轮===");
        System.out.println(Arrays.toString(arr));


        //第3轮
        insertValue = arr[3];
        //定义代插入的索引
        insertIndex = 3 - 1; //arr 1  前面一个数字的下标
        //给insertVal找到插入的位置
        while (insertIndex >= 0 && insertValue < arr[insertIndex]) {
            arr[insertIndex + 1] = arr[insertIndex];
            insertIndex--;
        }
        // 退出循环时候，插入的位置找到。这个位置在insertIndex+1
        arr[insertIndex + 1] = insertValue;
        System.out.println("===第3轮===");
        System.out.println(Arrays.toString(arr));
*/

       /* for (int i = 1; i <arr.length ; i++) {


            int insertValue = arr[i];
            //定义代插入的索引
            int insertIndex = i - 1; //arr 1  前面一个数字的下标
            //给insertVal找到插入的位置
            while (insertIndex >= 0 && insertValue < arr[insertIndex]) {
                arr[insertIndex + 1] = arr[insertIndex];
                insertIndex--;
            }
            // 退出循环时候，插入的位置找到。这个位置在insertIndex+1
            arr[insertIndex + 1] = insertValue;
            System.out.println("===第"+i+"轮===");
            System.out.println(Arrays.toString(arr));
        }*/


    public static void insertSort(int[] arr) {
        int insertValue = arr[1];
        int insertIndex = 1 - 1;
        while (insertIndex >= 0 && insertValue < arr[insertIndex]) {
            arr[insertIndex + 1] = arr[insertIndex];
            insertIndex--;
        }
        arr[insertIndex + 1] = insertValue;

    }
}































